home *** CD-ROM | disk | FTP | other *** search
-
-
-
- BBBB::::::::BBBByyyytttteeeeccccooooddddeeee((((3333)))) 2222////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) BBBB::::::::BBBByyyytttteeeeccccooooddddeeee((((3333))))
-
-
-
- NNNNAAAAMMMMEEEE
- B::Bytecode - Perl compiler's bytecode backend
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- perl -MO=Bytecode[,OPTIONS] foo.pl
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- This compiler backend takes Perl source and generates a
- platform-independent bytecode encapsulating code to load the
- internal structures perl uses to run your program. When the
- generated bytecode is loaded in, your program is ready to
- run, reducing the time which perl would have taken to load
- and parse your program into its internal semi-compiled form.
- That means that compiling with this backend will not help
- improve the runtime execution speed of your program but may
- improve the start-up time. Depending on the environment in
- which your program runs this may or may not be a help.
-
- The resulting bytecode can be run with a special byteperl
- executable or (for non-main programs) be loaded via the
- byteload_fh function in the _B module.
-
- OOOOPPPPTTTTIIIIOOOONNNNSSSS
- If there are any non-option arguments, they are taken to be
- names of objects to be saved (probably doesn't work properly
- yet). Without extra arguments, it saves the main program.
-
- ----ooooffffiiiilllleeeennnnaaaammmmeeee
- Output to filename instead of STDOUT.
-
- -------- Force end of options.
-
- ----ffff Force optimisations on or off one at a time. Each can be
- preceded by nnnnoooo---- to turn the option off (e.g. ----ffffnnnnoooo----
- ccccoooommmmpppprrrreeeessssssss----nnnnuuuullllllllooooppppssss).
-
- ----ffffccccoooommmmpppprrrreeeessssssss----nnnnuuuullllllllooooppppssss
- Only fills in the necessary fields of ops which have
- been optimised away by perl's internal compiler.
-
- ----ffffoooommmmiiiitttt----sssseeeeqqqquuuueeeennnncccceeee----nnnnuuuummmmbbbbeeeerrrrssss
- Leaves out code to fill in the op_seq field of all ops
- which is only used by perl's internal compiler.
-
- ----ffffbbbbyyyyppppaaaassssssss----nnnnuuuullllllllooooppppssss
- If op->op_next ever points to a NULLOP, replaces the
- op_next field with the first non-NULLOP in the path of
- execution.
-
- ----ffffssssttttrrrriiiipppp----ssssyyyynnnnttttaaaaxxxx----ttttrrrreeeeeeee
- Leaves out code to fill in the pointers which link the
-
-
-
- Page 1 (printed 10/23/98)
-
-
-
-
-
-
- BBBB::::::::BBBByyyytttteeeeccccooooddddeeee((((3333)))) 2222////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) BBBB::::::::BBBByyyytttteeeeccccooooddddeeee((((3333))))
-
-
-
- internal syntax tree together. They're not needed at
- run-time but leaving them out will make it impossible to
- recompile or disassemble the resulting program. It will
- also stop goto label statements from working.
-
- ----OOOOnnnn Optimisation level (n = 0, 1, 2, ...). ----OOOO means ----OOOO1111.
- ----OOOO1111 sets ----ffffccccoooommmmpppprrrreeeessssssss----nnnnuuuullllllllooooppppssss ----ffffoooommmmiiiitttt----sssseeeeqqqquuuueeeennnncccceeee nnnnuuuummmmbbbbeeeerrrrssss.
- ----OOOO6666 adds ----ffffssssttttrrrriiiipppp----ssssyyyynnnnttttaaaaxxxx----ttttrrrreeeeeeee.
-
- ----DDDD Debug options (concatenated or separate flags like perl
- -D).
-
- ----DDDDoooo Prints each OP as it's processed.
-
- ----DDDDbbbb Print debugging information about bytecompiler progress.
-
- ----DDDDaaaa Tells the (bytecode) assembler to include source
- assembler lines in its output as bytecode comments.
-
- ----DDDDCCCC Prints each CV taken from the final symbol tree walk.
-
- ----SSSS Output (bytecode) assembler source rather than piping it
- through the assembler and outputting bytecode.
-
- ----mmmm Compile as a module rather than a standalone program.
- Currently this just means that the bytecodes for
- initialising main_start, main_root and curpad are
- omitted.
-
- EEEEXXXXAAAAMMMMPPPPLLLLEEEESSSS
- perl -MO=Bytecode,-O6,-o,foo.plc foo.pl
-
- perl -MO=Bytecode,-S foo.pl > foo.S
- assemble foo.S > foo.plc
- byteperl foo.plc
-
- perl -MO=Bytecode,-m,-oFoo.pmc Foo.pm
-
-
- BBBBUUUUGGGGSSSS
- Plenty. Current status: experimental.
-
- AAAAUUUUTTTTHHHHOOOORRRR
- Malcolm Beattie, mbeattie@sable.ox.ac.uk
-
-
-
-
-
-
-
-
-
-
-
- Page 2 (printed 10/23/98)
-
-
-
-
-
-
- BBBB::::::::BBBByyyytttteeeeccccooooddddeeee((((3333)))) 2222////AAAAuuuugggg////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) BBBB::::::::BBBByyyytttteeeeccccooooddddeeee((((3333))))
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Page 3 (printed 10/23/98)
-
-
-
-
-
-
-